using System.Collections.Generic;

namespace OracleInternal.Sharding
{
	internal class ShardingMetadata
	{
		internal static int SUPER_SHARDING_KEY_LEVEL = 0;

		internal static int SHARDING_KEY_LEVEL = 1;

		internal ShardingType ShardingType
		{
			get;
			set;
		}

		internal ShardingType SuperShardingType
		{
			get;
			set;
		}

		internal List<SubKeyMetadata> ShardingKeyColumns
		{
			get;
			set;
		}

		internal List<SubKeyMetadata> SuperShardingKeyColumns
		{
			get;
			set;
		}

		internal ShardingMetadata()
		{
			ShardingType = ShardingType.NONE;
			SuperShardingType = ShardingType.NONE;
			ShardingKeyColumns = new List<SubKeyMetadata>();
			SuperShardingKeyColumns = new List<SubKeyMetadata>();
		}

		internal ShardingMetadata(ShardingType shardingType, ShardingType superShardingType, List<SubKeyMetadata> keyColumns, List<SubKeyMetadata> superKeyColumns)
		{
			ShardingType = shardingType;
			SuperShardingType = superShardingType;
			ShardingKeyColumns = keyColumns;
			SuperShardingKeyColumns = superKeyColumns;
		}
	}
}
